// https://leetcode.cn/problems/longest-substring-without-repeating-characters/description/
// class Solution {
// public:
//     int lengthOfLongestSubstring(string s) 
//     {
//         // 子串和子数组其实是一个相同的概念 都是连续的一段
//         // 哈希表判断字符是否重复
//         // 为什么要用滑动窗口
//         int hash[256] = {0};
//         int n = s.size();
//         int ret = 0;
//         for (int left = 0, right = 0; right < n; right++) {
//             hash[s[right]]++; // 进入窗口
//             while (hash[s[right]] > 1) {
//                 hash[s[left]]--;
//                 left++; // 出窗口
                
//             }
//             ret = max(ret, right - left + 1);
//         }
        
//         return ret;
//     }
// };